﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using RotovapPlatform.Domain.Common;
using RotovapPlatform.Domain.Equipment.Device.OilBath.Dto;

namespace RotovapPlatform.Domain.Equipment.Interfaces.Base
{
	/// <summary>
	/// 油浴锅基础接口
	/// </summary>
	public interface IOilBathBase : IEquipmentBase
	{
		/// <summary>
		/// 设置温度
		/// </summary>
		/// <param name="temperature">目标温度</param>
		Task<OperationResult> SetTemperatureAsync(double temperature);

		/// <summary>
		/// 设置运行状态
		/// </summary>
		/// <param name="status">
		/// 0: 运行
		/// 1: 暂停
		/// 2: 停止
		/// 3: 自整定
		/// </param>
		Task<OperationResult> SetRunningStatusAsync(int status);

		/// <summary>
		/// 设置控制模式
		/// </summary>
		/// <param name="mode">
		/// 0: 程序控制
		/// 1: 手动控制
		/// 2: 手动/自动模式切换
		/// </param>
		Task<OperationResult> SetControlModeAsync(int mode);

		/// <summary>
		/// 获取油浴锅状态
		/// </summary>
		Task<OilBathStatus> GetOilBathStatusAsync();
	}
}
